/**
  ******************************************************************************
  * @file    servo.h
  * @brief   舵机驱动头文件
  * @version V1.0.0
  * @date    2025-07-15
  ******************************************************************************
  */

#ifndef __SERVO_H__
#define __SERVO_H__

/* ========================= 用户配置参数区 ========================= */
#define servo_TIM            htim8
#define servo1_TIM_CHANNEL    TIM_CHANNEL_1
#define servo2_TIM_CHANNEL    TIM_CHANNEL_2
/* 当定时器从0计数到PWM_PERIOD_COUNT，即为PWM_PERIOD_COUNT+1次，为一个定时周期 */
#define PWM_PERIOD_COUNT     19999

#include "main.h"
#include "tim.h"
#include <stdint.h>


/* ========================= 用户实现接口 ========================= */
/**
  * @brief  舵机1初始化
  * @retval 无
  * @note   舵机1采用PC6(TIM3 channel1)
  */
void servo1_init(void);

/**
  * @brief  舵机2初始化
  * @retval 无
  * @note   舵机2采用PC7(TIM3 channel2)
  */
void servo2_init(void);

/**
  * @brief  设置定时器占空比
  * @retval 无
  * @param  dutyfactor : 占空比
  * @param  servo      : servo1_TIM_CHANNEL/servo2_TIM_CHANNEL
  */
void set_dutyfactor(float dutyfactor, uint32_t servo);

/**
  * @brief  设置舵机角度
  * @retval 无
  * @param  angle_temp : 舵机角度
  * @param  servo      : servo1_TIM_CHANNEL/servo2_TIM_CHANNEL
  */
void set_servo_angle(uint16_t angle_temp,uint32_t servo);
#endif
